//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef _Node_h_
#define _Node_h_
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include <typeinfo>
#include <stdio.h>
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
  template <class T>
  class TNode {
      
    protected :
        
      T*         info;
      
      bool       hidden;
      
      TNode <T>* previous;
      TNode <T>* next;
      
    public :
        
      TNode ();
      TNode (T data);
      TNode (T* data);
      
      ~TNode ();
      
      inline T*         Info (void);
      inline void       Info (T*);
      inline void       Info (T);

      inline void       SetHidden (void);
      inline void       SetVisible (void);
      
      inline bool       IsHidden (void);
      inline bool       IsVisible (void);
      
      inline TNode <T>* Next (void);
      inline void       Next (TNode <T>*);
      inline void       Next (const TNode <T>&);
      
      inline TNode <T>* Previous (void);
      inline void       Previous (TNode <T>*);
      inline void       Previous (const TNode <T>&);
      
      TNode <T>         operator= (const TNode <T>&);
      
  };
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
